Setup Yeedu Control Plane
1. Credentials Setup
Create two files for to store below mentioned credentials:
-
Cloud Credentials:
- Create
cloud_credentials.json. - Paste JSON credentials in the specified format.
- Create
-
Registry Credentials:
- Create
docker_registry_credentials.json. - Paste JSON credentials for your container registry.
- Create
Credential Format for Microsoft Azure
{
"CLIENT_ID": "<client_id>",
"TENANT_ID": "<tenant_id>",
"CLIENT_SECRET": "<client_secret>",
"SUBSCRIPTION_ID": "<subscription_id>",
"STORAGE_ACCOUNT_NAME": "<storage_account_name>",
"CONTAINER_NAME": "<container_account>"
}
Replace all placeholder values (e.g., <client_id>, <tenant_id>) with your actual credentials. Keep these files safe and secure, as they contain sensitive information.
2. Download Yeedu Control Plane Files
To initiate your Yeedu Control Plane Setup, download the essential scripts from the yeedu-runtime.
-
Open a terminal or command prompt.
-
Run the following command to download the Yeedu Runtime Setup Files :
azcopy copy <https://$storage_account_name.blob.core.windows.net/$container_name/yeedu/yeedu-runtime.tar> </local/path/to/local/storage >
tar -xzvf /local/path/to/local/storage/yeedu-runtime.tar
Reachout to Yeedu team to get the access to the ADLS2 Storage Account and container registry which have all the Yeedu tars and images.
- Change the working directory to yeedu-runtime:
cd yeedu-runtime
3. Deploy Yeedu Services on Kubernetes
3.1. Provide execute permissions
After updating properties, go to the Yeedu Control Plane folder. Find yeedu-core-services.sh and setup-ingress.sh script. Grant execute permissions:
chmod +x yeedu-core-services.sh
chmod +x setup-ingress.sh
3.2. Authenticate to Kubernetes Cluster (Azure Kubernetes Service)
Authenticate to the Kubernetes Cluster using the Azure Cloud CLI and kubectl commands provided below.
az login --service-principal --username CLIENT_ID --password CLIENT_SECRET --tenant TENANT_ID
az aks get-credentials --resource-group RESOURCE_GROUP_NAME --name CLUSTER_NAME
Validate successful cluster authentication by running the command below:
kubectl config get-contexts
3.3. Update SSL Certificates
In the yeedu-runtime directory, find the ssl folder. Update yeedu.crt and yeedu.key with the your specific SSL certificate and SSL RSA key. These files are used by the Yeedu Ingress Controller in Kubernetes.
3.4. Create DNS Entries
Create DNS entries for the Ingress record in the Azure cloud environment. Ensure entries are created for all configured hostnames in the Ingress. Execute the following command:
az network dns record-set a add-record --resource-group RESOURCE_GROUP_NAME --zone-name YOUR_DNS_ZONE_NAME --record-set-name <dns> --ipv4-address <ip>
4. Configure Yeedu Control Plane Properties
After downloading the essential files, customize your Yeedu environment by adjusting key configuration settings. Update the following property files to reflect your specific infrastructure and cloud provider details.
4.1. Configuration Files
-
yeedu-connection.properties:
- This file connects Yeedu to essential services like Postgres, RabbitMQ, and Redis. Update connection parameters based on your service configurations, including database hostnames, usernames, and passwords.
-
yeedu-system-config.properties:
- This file manages cloud-based services such as Object Storage and Container Registry. Align settings with your chosen cloud provider and configurations for seamless integration.
Uncomment and provide input values for the properties specified in the files. Detailed explanations for each parameter are available in the respective property files.
4.2. Variables Reference
4.2.1. yeedu-connection.properties
Metadata DB
| Variable | Description | Default Value | Required |
|---|---|---|---|
| YEEDU_DEPLOY_LOCAL_POSTGRES | Enable local Postgres deployment | true | Yes |
| YEEDU_PG_DB | Name of the Postgres database | yeedu | Yes |
| YEEDU_PG_USER | Username for Postgres connection | postgres | Yes |
| YEEDU_PG_PASSWORD | Password for Postgres user | postgres | Yes |
| YEEDU_PG_HOSTNAME | Hostname or IP address of the Postgres server | Endpoint Url of the service | Yes |
| YEEDU_PG_PORT | Port number for the Postgres server | 5432 | No |
| YEEDU_PG_SSL_ENABLED | Enable SSL encryption for Postgres connection | false | No |
Messaging Service
| Variable | Description | Default Value | Required |
|---|---|---|---|
| YEEDU_DEPLOY_LOCAL_RABBITMQ | Enable local RabbitMQ deployment | true | Yes |
| YEEDU_MQ_USER | Username for RabbitMQ connection | guest | Yes |
| YEEDU_MQ_PASSWORD | Password for RabbitMQ user | guest | Yes |
| YEEDU_MQ_PORT | Port number for RabbitMQ | 5672 | No |
| YEEDU_MQ_UI_PORT | Port number for RabbitMQ management UI | 15672 | No |
| YEEDU_MQ_UI_HOSTNAME | Hostname for RabbitMQ management UI | Endpoint Url of the service | Yes |
| YEEDU_MQ_HOSTNAME | Hostname or IP address of the RabbitMQ server | Endpoint Url of the service | Yes |
| YEEDU_MQ_VH | Virtual host for RabbitMQ | "/" | No |
| YEEDU_MQ_SSL_ENABLED | Enable SSL encryption for RabbitMQ connection | false | No |
Redis Cache
| Variable | Description | Default Value | Required |
|---|---|---|---|
| YEEDU_DEPLOY_LOCAL_REDIS | Enable local Redis deployment | true | Yes |
| YEEDU_REDIS_PASSWORD | Password for Redis | admin | No |
| YEEDU_REDIS_PORT | Port number for Redis | 6379 | No |
| YEEDU_REDIS_HOSTNAME | Hostname or IP address of the Redis server | Endpoint Url of the service | Yes |
| YEEDU_REDIS_SSL_ENABLED | Enable SSL encryption for Redis connection | false | No |
LDAP Service
| Variable | Description | Default Value | Required |
|---|---|---|---|
| YEEDU_DEPLOY_LOCAL_LDAP | Enable local LDAP deployment | true | Yes |
| YEEDU_AUTH_LDAP_ORGANISATION | LDAP organization name | yeedu | Yes |
| YEEDU_AUTH_LDAP_DOMAIN | LDAP domain | yeedu.com | Yes |
| YEEDU_AUTH_LDAP_ADMIN_PASSWORD | Password for LDAP administrator | Ndbk5Lgb | Yes |
| YEEDU_AUTH_LDAP_HOSTNAME | Hostname or IP address of the LDAP server | Endpoint Url of the service | Yes |
| YEEDU_AUTH_LDAP_PORT | Port number for LDAP server | 389 | No |
| YEEDU_AUTH_LDAP_BASE_DN | Base DN for LDAP | dc=yeedu,dc=com | Yes |
| YEEDU_AUTH_LDAP_BIND_DN | Bind DN for LDAP | cn=admin,dc=yeedu,dc=com | Yes |
| YEEDU_AUTH_LDAP_BIND_PASSWORD | Password for LDAP bind user | Ndbk5Lgb | Yes |
| YEEDU_AUTH_LDAP_SSL_ENABLED | Enable SSL encryption for LDAP connection | false | No |
| YEEDU_AUTH_LDAP_GROUP_SEARCH_FILTER | LDAP query filter used to search for groups | <YOUR_LDAP_GROUP_SEARCH_FILTER> | No |
| YEEDU_AUTH_LDAP_USER_SEARCH_FILTER | LDAP query filter used to search for users | <YOUR_LDAP_USER_SEARCH_FILTER> | No |
| YEEDU_AUTH_LDAP_USER_GROUPS_SEARCH_FILTER | Filter to retrieve all groups of which a user is a member | <YOUR_LDAP_USER_GROUPS_SEARCH_FILTER> | No |
REST-API
| Variable | Description | Default Value | Required |
|---|---|---|---|
| YEEDU_RESTAPI_PORT | Port number for REST API server | 8080 | No |
| YEEDU_RESTAPI_HOSTNAME | Hostname or IP address of REST API server | Endpoint Url of the service | Yes |
| YEEDU_SECRET_KEY | Secret key for authentication and encryption | yeedu | No |
| YEEDU_RESTAPI_LOG_LEVEL | Log level for REST API server (e.g., INFO, DEBUG) | INFO | No |
| YEEDU_RESTAPI_SSL_ENABLED | Enable SSL encryption for REST API connection | false | No |
| YEEDU_RESTAPI_REPLICA_COUNT | Number of replicas/instances for REST API server | 1 | No |
History Server
| Variable | Description | Default Value | Required |
|---|---|---|---|
| YEEDU_HISTORY_SERVER_WEB_PORT | Port number for History Server web interface | 10000 | No |
| YEEDU_HISTORY_SERVER_WEB_HOSTNAME | Hostname for History Server web interface | historyserver.yeedu | No |
| YEEDU_HISTORY_SERVER_WEB_SSL_ENABLED | To Enable/Disable History server on HTTPS | true | No |